home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / python2.4 / opcode.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-10-18  |  4.2 KB  |  154 lines

  1. #ifndef Py_OPCODE_H
  2. #define Py_OPCODE_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6.  
  7.  
  8. /* Instruction opcodes for compiled code */
  9.  
  10. #define STOP_CODE    0
  11. #define POP_TOP        1
  12. #define ROT_TWO        2
  13. #define ROT_THREE    3
  14. #define DUP_TOP        4
  15. #define ROT_FOUR    5
  16. #define NOP        9
  17.  
  18. #define UNARY_POSITIVE    10
  19. #define UNARY_NEGATIVE    11
  20. #define UNARY_NOT    12
  21. #define UNARY_CONVERT    13
  22.  
  23. #define UNARY_INVERT    15
  24.  
  25. #define LIST_APPEND    18
  26. #define BINARY_POWER    19
  27.  
  28. #define BINARY_MULTIPLY    20
  29. #define BINARY_DIVIDE    21
  30. #define BINARY_MODULO    22
  31. #define BINARY_ADD    23
  32. #define BINARY_SUBTRACT    24
  33. #define BINARY_SUBSCR    25
  34. #define BINARY_FLOOR_DIVIDE 26
  35. #define BINARY_TRUE_DIVIDE 27
  36. #define INPLACE_FLOOR_DIVIDE 28
  37. #define INPLACE_TRUE_DIVIDE 29
  38.  
  39. #define SLICE        30
  40. /* Also uses 31-33 */
  41.  
  42. #define STORE_SLICE    40
  43. /* Also uses 41-43 */
  44.  
  45. #define DELETE_SLICE    50
  46. /* Also uses 51-53 */
  47.  
  48. #define INPLACE_ADD    55
  49. #define INPLACE_SUBTRACT    56
  50. #define INPLACE_MULTIPLY    57
  51. #define INPLACE_DIVIDE    58
  52. #define INPLACE_MODULO    59
  53. #define STORE_SUBSCR    60
  54. #define DELETE_SUBSCR    61
  55.  
  56. #define BINARY_LSHIFT    62
  57. #define BINARY_RSHIFT    63
  58. #define BINARY_AND    64
  59. #define BINARY_XOR    65
  60. #define BINARY_OR    66
  61. #define INPLACE_POWER    67
  62. #define GET_ITER    68
  63.  
  64. #define PRINT_EXPR    70
  65. #define PRINT_ITEM    71
  66. #define PRINT_NEWLINE    72
  67. #define PRINT_ITEM_TO   73
  68. #define PRINT_NEWLINE_TO 74
  69. #define INPLACE_LSHIFT    75
  70. #define INPLACE_RSHIFT    76
  71. #define INPLACE_AND    77
  72. #define INPLACE_XOR    78
  73. #define INPLACE_OR    79
  74. #define BREAK_LOOP    80
  75.  
  76. #define LOAD_LOCALS    82
  77. #define RETURN_VALUE    83
  78. #define IMPORT_STAR    84
  79. #define EXEC_STMT    85
  80. #define YIELD_VALUE    86
  81.  
  82. #define POP_BLOCK    87
  83. #define END_FINALLY    88
  84. #define BUILD_CLASS    89
  85.  
  86. #define HAVE_ARGUMENT    90    /* Opcodes from here have an argument: */
  87.  
  88. #define STORE_NAME    90    /* Index in name list */
  89. #define DELETE_NAME    91    /* "" */
  90. #define UNPACK_SEQUENCE    92    /* Number of sequence items */
  91. #define FOR_ITER    93
  92.  
  93. #define STORE_ATTR    95    /* Index in name list */
  94. #define DELETE_ATTR    96    /* "" */
  95. #define STORE_GLOBAL    97    /* "" */
  96. #define DELETE_GLOBAL    98    /* "" */
  97. #define DUP_TOPX    99    /* number of items to duplicate */
  98. #define LOAD_CONST    100    /* Index in const list */
  99. #define LOAD_NAME    101    /* Index in name list */
  100. #define BUILD_TUPLE    102    /* Number of tuple items */
  101. #define BUILD_LIST    103    /* Number of list items */
  102. #define BUILD_MAP    104    /* Always zero for now */
  103. #define LOAD_ATTR    105    /* Index in name list */
  104. #define COMPARE_OP    106    /* Comparison operator */
  105. #define IMPORT_NAME    107    /* Index in name list */
  106. #define IMPORT_FROM    108    /* Index in name list */
  107.  
  108. #define JUMP_FORWARD    110    /* Number of bytes to skip */
  109. #define JUMP_IF_FALSE    111    /* "" */
  110. #define JUMP_IF_TRUE    112    /* "" */
  111. #define JUMP_ABSOLUTE    113    /* Target byte offset from beginning of code */
  112.  
  113. #define LOAD_GLOBAL    116    /* Index in name list */
  114.  
  115. #define CONTINUE_LOOP    119    /* Start of loop (absolute) */
  116. #define SETUP_LOOP    120    /* Target address (absolute) */
  117. #define SETUP_EXCEPT    121    /* "" */
  118. #define SETUP_FINALLY    122    /* "" */
  119.  
  120. #define LOAD_FAST    124    /* Local variable number */
  121. #define STORE_FAST    125    /* Local variable number */
  122. #define DELETE_FAST    126    /* Local variable number */
  123.  
  124. #define RAISE_VARARGS    130    /* Number of raise arguments (1, 2 or 3) */
  125. /* CALL_FUNCTION_XXX opcodes defined below depend on this definition */
  126. #define CALL_FUNCTION    131    /* #args + (#kwargs<<8) */
  127. #define MAKE_FUNCTION    132    /* #defaults */
  128. #define BUILD_SLICE     133    /* Number of items */
  129.  
  130. #define MAKE_CLOSURE    134     /* #free vars */
  131. #define LOAD_CLOSURE    135     /* Load free variable from closure */
  132. #define LOAD_DEREF      136     /* Load and dereference from closure cell */ 
  133. #define STORE_DEREF     137     /* Store into cell */ 
  134.  
  135. /* The next 3 opcodes must be contiguous and satisfy
  136.    (CALL_FUNCTION_VAR - CALL_FUNCTION) & 3 == 1  */
  137. #define CALL_FUNCTION_VAR          140    /* #args + (#kwargs<<8) */
  138. #define CALL_FUNCTION_KW           141    /* #args + (#kwargs<<8) */
  139. #define CALL_FUNCTION_VAR_KW       142    /* #args + (#kwargs<<8) */
  140.  
  141. /* Support for opargs more than 16 bits long */
  142. #define EXTENDED_ARG  143
  143.  
  144.  
  145. enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE, PyCmp_GT=Py_GT, PyCmp_GE=Py_GE,
  146.          PyCmp_IN, PyCmp_NOT_IN, PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD};
  147.  
  148. #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
  149.  
  150. #ifdef __cplusplus
  151. }
  152. #endif
  153. #endif /* !Py_OPCODE_H */
  154.